/*******************************************************************************
 * 版权：北京润尼尔网络科技有限公司，保留所有版权<br>
 * 版本：v1.0.0<br>
 * 文件：CommandMoveVertex.js<br>
 * 日期：2016年9月20日<br>
 * 作者: 王志远<br>
 * 功能：添加命令<br>
 * 
 * 修改记录：<br>
 * 日期 描述 更新功能<br>
 ******************************************************************************/

window.makeNamespace(window,"Rainier.UI.V2");

/**
 * 类型名称：Rainier.UI.V2.CommandMoveVertex<br>
 * 类型功能：添加元件命令<br>
 */
Rainier.UI.V2.CommandMoveVertex = draw2d.command.CommandMoveVertex.extend({
	
	NAME : "Rainier.UI.V2.CommandMoveVertex",
	
	/**
	 * 函数名称：Rainier.UI.V2.CommandMoveVertex.init<br>
	 * 函数功能：构造函数<br>
	 * 异常信息：无<br>
	 */
	init : function(editPart){
		this.editPart = editPart;
		this._super(editPart.getFigure());
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.CommandMoveVertex.execute<br>
	 * 函数功能：执行命令<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	execute:function(){
		this._super();
	},

	/**
	 * 函数名称：Rainier.UI.V2.CommandMoveVertex.undo<br>
	 * 函数功能：移动定点命令，撤销时执行该函数，使上一步的操作恢复原样<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
    undo:function(){
        this.line.setVertex(this.index, this.origPoint.x, this.origPoint.y);
    },
    
    /**
	 * 函数名称：Rainier.UI.V2.CommandMoveVertex.redo<br>
	 * 函数功能：连线顶点发生移动时，执行该函数，修改对应顶点的位置<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
    redo:function()
    {
    	this.newPoint.x   = this.newPoint.x % 9 ? this.newPoint.x : (this.newPoint.x/9)*9+9;
    	this.newPoint.y   = this.newPoint.y % 9 ? this.newPoint.y : (this.newPoint.y/9)*9+9;
        this.line.setVertex(this.index, this.newPoint.x, this.newPoint.y);
    }
});

